<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <meta name="theme-color" content="#3367D6"/>
  <link rel="apple-touch-icon" href="/icons-192.png">
  <link rel="manifest" href="/manifest.json">
  
  <meta name="generator" content="Hexo 6.3.0">

  

  

  
    <meta name="author" content="QAQ">
  

  

  

  <title>vue导出el-table到Excel | QAQ</title>

  

  
    <link rel="shortcut icon" href="/blog/favicon.ico">
  

  <!--mathjax latex数学公式显示支持-->
  
  

  
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/typeface-source-code-pro@1.1.13/index.min.css">
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/highlightjs/cdn-release@11.7.0/build/styles/monokai.min.css">
  

  

  
<link rel="stylesheet" href="/blog/css/style.css">

</head>
<body>
  <div class="root-container">
    
<!-- header container -->
<header class="header-container post">
  
    <div class="post-image" style="background-image: url(https://qiniu.sukoshi.xyz/src/images/68686407_p0.jpg)"></div>
  

  <!-- navbar -->
<nav class="navbar">
  <div class="navbar-content">
    <!-- logo -->
    <div class="navbar-logo">
      <a href="/blog/">
        
          QAQ
        
      </a>
    </div>
    <!-- link -->
    <div class="navbar-link">
      <div class="navbar-btn">
        <div></div>
        <div></div>
        <div></div>
      </div>
      <ul class="navbar-list">
        
      </ul>
    </div>
  </div>
</nav>

  
  

  
  

  
  

  
  

  
  
    <div class="header-content">
      <div class="post-text layout-block">
        <div class="layout-margin">
          <h1 class="title-wrap">vue导出el-table到Excel</h1>
          <h2 class="title-sub-wrap">
            <strong>QAQ</strong>
            <span>发布于</span>
            <time  class="article-date" datetime="2024-03-04T08:47:00.000Z" itemprop="datePublished">2024-03-04</time>
          </h2>
          
            <h2 class="last-time">
              <span>最后更新于</span>
              <time  class="article-updated" datetime="2024-04-09T01:08:52.101Z" itemprop="dateUpdated">2024-04-09</time>
            </h2>
          
          
          <ul class="wrap-list dark">
  
</ul>
          <ul class="wrap-list dark">
  
    <li><a href="/blog/tags/%E5%AF%BC%E5%87%BAExcel/">🏷️ 导出Excel</a></li>
  
</ul>
        </div>
      </div>
    </div>
  

  
  
  
</header>

    <!-- 文章 -->

<!-- 文章内容 -->
<div class="body-container">
  <article class="content-container layout-block post-container">
    <div class="article-info">
      
      
      
      
      <section class="article-entry markdown-body layout-margin content-padding--large soft-size--large soft-style--box">
        <div class="hbe hbe-container" id="hexo-blog-encrypt" data-wpm="抱歉，这个密码看着不太对，请再试试。" data-whm="抱歉，这个文章不能被纠正，不过您还是能看看解密后的内容。">
  <script id="hbeData" type="hbeData" data-hmacdigest="7855cb7e2a28a16f78f59c1a137ee971993e43006b5ef82fa2af5a9f7563ae3f">f5d7027a76d40f8b4fe5a79716a716fbecb20eb8f4d5001876237e810c3efb1e342ea59d38286c09cd09cf38ab892d5ee2969b33bf3dc1b1caee818d6e08dcf1ef95b228d454deb55e64e9c4bc6014b34a54fe765b494bf42ee2386917162676e635005f11fdecb6ea62c0bc0c768e4bcdb371da8da8c3e2b6f9c091997cc5099131c337a4881a0da301cf419853e37e01f836f48c29c63445777537afd7605c3784519a8157bc813e23b712f842ef3edfcdb68a08b7fcaf9da0f6132f8beace694edfa66435fbca57357e649d793525dac040068bd3902f54dbf6370699ce761a25d869d54e257bd8c85fed78c29f46b17a2e0efd53fe5c274953f6e1f71d9ef5c7be58d1b65b8ab8d67a268fcb910bfccd6a8e6344944ccae2144dc41ada07f4c2908d4495baac3529f65c8de62eabb0bfd7d49524f54e343274b11f84933ac58cb1bcfab712c6c21d9cbdc0438d17fd72f109186d9a1bd8978bd0e6659a76c6a9699b11fd80a21fd8ad79e5e66e638887c695f4f2a8e444610aa0ccb0a60a99a9be836a4d8566001025772520ccf842e95b941f3ddb96bc39cc54eedb22646b7da9b8ac594e5a6c656a7cac2b65ecedf9628839ca604fb5afca44b0cb675152939aa711d3d58576163cfc17cbc68d4f6a5db8173dfc3ba3f3dcd232de7577ca5a651fcbe229387345bc9110948ece6e5135009c4abb5af2853adf335a8f31e5bc6b98cf3e86694145a304623c85664d95c83954fd9823a06e2e9aad5504026c554b8366f894e2b6bf61de9e6ccdb74d6ad6669c77d8f8e283eb757408e1724daead216637a28d19c875f6dfa74ac99d1dd28af7f2f4e34153fab736be510526ca60334b2141eb8d6927e6a6f7cb6e900e1caa57b348f4664e841af2160853b3b8abb9fc6e83a23063bcd0c69f91e963a72e90e8482d9683358cad9bf89cdf9338b602bc5017e40fdeed76859afb2b4ab51871db6a2e930236437607666e101ebd048a2ac1ab554c445841f62d8356ca5c8933eef662bc605183ab415c6d7a4563fc3e713cafff46bf5ddfb622c350d8a643da99799b718603dd296c2094c7e7d7bae059e19ef953f6d7a2ba38fc47228eb0197d2fad82f0cf5cb8a6ce22b284c7593f31102c481a9141b18765502040bc5302756678e2f8e96cbcbe3a3967e60ce115669ca046be5d0e36a37213da21aab5e85aed177a61b416fb904856cc55d63d26209edff00971d4349662f81307287b06ee6fa72482393f7ff86cce9cdb2e87f95bcc5b9874a8ddf19236b28fa1a1ac60597f13e693e4de30e073d413f3363ec943a1fd4ca2d08fd4c8bde7560f66a70048ff8cadd9e8711c882747d63f4ef3d4f6580c7f9304353476e27581ee1310e58111919080359ece1d5ada62857c4b2bcbd2593bb357e837f3ab6a047e8379c7d10d14e39f881261a7fc6ab589c1e7ff1f1a5b3fff5d86973811fe7d954473a0ca6991595eda6e3d9502bff986a6cdfa89944af7c1b6487f241d16de22d322495dddc30d725245f8d00843d2e15e476b0bce582376881262e4e7adc19e00a963f16ca32320c1108bd48cc4741b8847305b649506f05c1669ceebedcb5df0e23befcc6ece16951712f3adeb1ee5ea4065e272526b7fa637a8b74740df166747b27fdbf60bb152e15ad78a771487c54b22565e6443e066bac943e0ea95970e14233ff243efaa7f39802612f57d790be4a1a5e38607e627a3d52b710a941722e6ad702c2a525b9bab607089e62387779b5cf77f6ebe1dcd7a87585f029f1a12200b7dd534eae610657edfea0896ff803afa62fab85e49c556168a1f2a042d396035bae7cc2dd361ab40855f44ad5651cec2df20ab56c3115e161ee846a39d91822001d8d13a0e0c786860e06d709e1cbef2a0e6e16e3a31c2f1d7ced27c2fb341e59cbe2389a306d98f4d9895c4ba9cd21dfca7a1eb9095537d951fcbdc73fd74f20baf62d034750fd28c4d5a6f408de467dbeddb249f910e0fa18eb4ca8b01e4f5a4844f7284aab258a2c3c9ba5ebfd64d9c3ee9389a1309f9245965de2eef4f4ebb9f640096493b8730bdbd735a8ca7cecb5e953f1c6ac8aa38741485f43cb493ab07c9aa3d2101b70e05973bb2c5047e3e2e94f5fffe57e90e8b756c2ee979702d90036fef0ea39992003d2de6b77a0e462245c64eb0123343b8b53c37e17870e688981215b0c1c549d22f80abde0e14453a286622069570f639794cd236f40006fb36cf743cda350b145d5a05f258499b5ed85623aa606414bc7534d51c864b3d4aca2559e9bcff38a036929ecfba2152cd4fd558c01266be9ee82e11505e9201b1cf9c24a9b9ed7821f23c42bf1a29aab171cc909b94dfba801b73db06a3089ef3b4161c63c69cc6fb7771838df261cb1c72fc2704d25fce600946e610d687c8758785dcec8f67c273133e823ccecf0f4441a5d1db5c95b1d1eb1a6f8f62605088a3fa218f7d675b7633c86d7e8d969e87bfe99c034a1c22cc482a652780f9f27136866810402897ace0323b1bf22423aa6ca58bc96ca4c255c3a1565c640bb9a9eb86c0e5759972662fdbae7f06003410bcaf26fc81687c4bdf08d8321e9eda41b71ec2c703bcc7e2b1565ae67178b85c34b466d95057ee6ba0d724cac7c123ae769aac529a2d4581a2da07c61b6ae0bf0a0529afbb37ef527172def10831305c5b84acef2df4b651994bc6db75333fd86e34cff6f7f5f4f927a5df882106716f0e6d8eb4d60528dbfca74bf0f59b157381ca551211dfcd75f55b17624f5a716e0f9fee43213c703b605f4811501451459a6228111e8eff35a8db636a9f1ccef0aa2a475aaf5d3c95347df22a48c6669b9c1c3b3c0db365daf12b27d1f56affe4307716dfedd7e4e43c55398f6a67a7808b9a184ae4ef3d5c55a859ad0f80206b5bbbc2a14a59885347fba229ee93391e70381c8320feeb5fc8632697e628447bb9d5594d73ea9df241cb574b41099e8046a362ec671e99332ff7d0e6a9e534d9e4f3d5dd04fd60d8c410223a09fea877e53f8a66f5bce37bd5e4f54d0eddf33f8e3587e00b8f675925e2e674bac657280ad8705ac90f53ba83ca8b1c0d2cebecae067802e97417d96d02d127681bf786d345e8cc01c469ec6e0dac7562dde6327c2215114b2cdac6d37c5fc233163cccf749fe6ca4b9d358f4fcca440f1258828f936dc94345016ccd8fd0ba0a46d840d4ac23a7ed202a091c480858ec5451f7227551114e8dfeabc2eeb77073e98ba8c763aa199c22751775108c0ac12c7b41604fa0fca97304728934ad71acf49d2078efcbcb78f63a50fbecf472cfc7d78faca78eb3d99ad6730fb8993f070d8a9fc6d35c76f414b7bff35b4cc70f94649c1535d01a84d8d3dc101fae1a233b8294a0a811ca717b3d17c1e86144b18bb46d3ec721ca1607e1609265879941cad042d9da7489969755a2b327df22e125ed63a3c29433af2a584d8930270ac9b28fbe4cb34e73214a5c64e1f0dfd82bea771566e151910177bc95948770ad1cb8ef48adf01fd0f3be5f7c510db1dba812748785ae7c21719b597edf88d5bfa21188178309312deefe06d55f25542185ff009a1888e5e027d4148e88a990694149febd62f5793a48f48def8f893ba51d062a8e9bc4313f34c00a71ebe0b420d1a496eb8b84c925990a37420937da65f7e4a605de210afbbdaaa15cc6f426d4c17eba7adf39e5f3f6fa9169f89e27b319b2fb6b989febc3c8ebd7b3c084e9046ea4fb621561dca2bcaeeb070cb4800eee5b13dcc580001dba4b7388ea0105c44819713cb3b82b6ad81653e0ad79a8685bb40e13cd37e2d12a77aa82af3def29faeef998df619ec13d9bb4bf05faca3762f21fce403dfac41ae0f1032830d2403f20c02b6efeee28783938e6f2120bda021840e9e15a01b0b03e7129318d171c492ce90a318a28019328d970b082a3b31d0ce3178a2dc6e438c728c46cfc8395e8cc1972d4fc4a581cfabd0cdb016978c14eff9ad0c411260f4c36c2124c070345a8f1ace69ddc939e27b41e414243c05542bed071b00a04c1c5a16ca31780bebc5f20d0311c70465e8d0000ea13be9c4f9646f6ffc5cdeb9bd7fa40f1d2b8c46dddf7338bb86eb6b0418f3822154252f452b3d42420c82fdee1ccda251e0cc940a5dee7334f91bff3e68bfff1bfec110e5a7a9257e18b8e69b8ae53c0a85b011178f82f8aa1848303067f54aeb42652954949f9a40cadaf95dbc8d082c7dce4529ce3697da03d8fc4eea1cfcc7303ba242f4d7feef8e1742d519d78b3cbfd50603548c662e4f91b3a6e190976c8599ee88868937ca77734c91cfe55b6d2f8af3d6a4d6631125d236f6ba2a7a69c040f7b63085bf6a765711cb7ebbdf5cd13cb43e9e13bc048a36d945b4c4886dace7f2457643c821605d200d1466630a570913663547ecc6d5ab7f1aca22ef1149aa772a53c08c189e5f938c9d04f5ec8f0552b76f78a6d95f6df03ccdb24cd3883c0cc4b4061c9cf5c88840f1db0b0eeb07ff40401eff6fcbe3600b14e88bfbe90955e46cf1f781a974cbdfaac9de072c29f628d1a48d4fbfd2ff2cb49cbb298b6810ac6a921d92e9a9e16e2c8d19cb5975bea2a0af49b7e4343be316b6baf0dc843997a58978ac57f46f0b088a55a17a6e36e698fd3dd8575e9827e9a65ae14449f755427fe79c8ae61339e12c2f6f2fabd690cb4ab1ff5ccfc4bdbce02c77f43658354535cacaae9f3951dc9c58afacce35fd133b973f70265ef604a9ca619a7eb1543d9bf00d8392df5a84f84f3fe38c7935bdcaf8530ac771e0c203b2ab6204a59b2eee3641350f522488742d5251dca959579a4db2c31b9aab12fa9b1b15d7af76a7ca0b0bb7bc092b8aa34207e30a45e97f0dbb566ea53c51ff3f50713375b09c5b3dc4f0bc6834af22caac9997ed2482d3c633a3a32fc1d9d210a03b3deb7668845b6c1bce65627b4e5bacbbe74588edd7e841854b45c440f663a63499b5ac4d18f20da3cc6ff6727e91c23c90fa43aea0d3d3820edfa5c1a413176c3ad31c6c9a4d22bf8512e653cebca50da5dca6d049083d9aac9a07f857cdcc2f41d11d496d3310956afce5ca8676103114d4a55b3b7b2a993bd89a86b30f49f48204144ccf7e42b1e424f3a368298bbd8a9dc133962b64387098365bde061563b347cd127d31449a1baeddbc359da1e5b3f71abf5bbae6b6d88197251af795205f5609ad92deee5e2138be202aad984936f605fbfa78f24643b193955242bcb8f8a7860b9f31d2b8f90cc34c136fd8cf3e30827e488b25a508f0813646ffc686ff46b94d5b5e706599fcb05e86f198a55560dc997a7b6b4ec5af2da504915359bad9b1f4e25ed3d8e6c7e58089bfcc543be026bab050c41de860d87ec44e8323ad836edcd3b7709285aa281e208c2b48e23c593960179fde4975bf29dca4c4ea09cb4f32f1f1d2521ec34bca5b07e48fa358b2109b9a2eb750ac0a7a5c3da611cab2f19bb4cd2dbf9b140b9e1c1c8c97bc35bd7a7eadc2edff5182dca483268a30767a35c84f8eb26fdea48e3567ba7c418d37c934f5dd189d7f0b7c556b91ec52ac567fa51e6bc7b3ad8e10faf20233d24db300bfea05ad8e8159bcd13c2d1702c1a303c19036853f691981e90dae2803af42df281585d8d023263e94ee46f8775e9149ee75beb4d3308cc2fb0b5a65496c3be54683b01a06fee323c6669b98c892003d89db9b1244ceb0f216072b93f27de5dece4bff1a20876f4c74574ad1da2288e6da979c87630c302cebfae52fac361f4a6697ab94bdf8d3163c0febe0fec090eadf36fd7e5dc4da02c48ea5c98d025ea434f00dade79ab73d32369d280810a30f23a3824796cc54de6f84c9aa52bcfc97b98a2b23bb08aac318cdc9ae5ed78f98a90904b10c99cead1a192a20f6342a1bd79934736746945c80065d192e34d37cc00fc1354a64bed908a84fd738417e10934eaa414aec6a31b304988ab4aa02c22ea9c258bcb1b27a572795f243d954c66a4ae10e4baee4b8a7e5ac12683803e481f313d846a3f56e463e28224262961f7bd620fd43ebb234fc42fbe75c63d7d4d91ebaebf32c9c0fe64c47bf494b0716b28175807f995e710fafc535078c8f211971e5b711842d3b3d9994e42a76362868b5283948c41059ddc1a026ced0709d411333bb20664efc7e6b0ebbadb1223ceb3ac5fa133e48167368cf629babe8d219433161268c881a94aad8da7484bdc4ee96893f458b8fd2973e7822c9b722d96e813618c41acf60beb2337a72d34165fe3f77f9b6afeefe45332949e8db4a60d7596a025b2831766a3260f71ad313a4d95db70e10437a8cbf556b11f39d6fabc2ed8fb688968c16420f3b47d839ab8cf03651e594b21b961006d5d6b3e3616a8fc97fb3eca730a8af23f48156a872bcfed93f6d03a9a9da0dac76ab37cd4d17edd8a672f3c54301006e0a98e9ab49d1283a8865cb26ed24553e04614316eb4fe639213ad9e3690fa98ffd451b63569351c2e6cb467cfe55be26f95b71d53a76b3e26b624eabc9d096235ee2d2c1ebb5f60bbf3ea29c399aead4251c5bc72c4ff59fff39ba41ee909cb2f6384c725a2d29c782a50ae84541a6acaaa42e3e59c31c36dae719f6cc7d5f8326059f0f2d0ae6f74a6a94bf5b33c980a359a9a9b0b906653785b27f7ba2c759369a59438aad231cb183c7ff8b1894eccbac1969b5a7ca96eba2c428807fb5a5083dfc401dcab720d0c5578b1dcd585573ceb63c5cff269d9084fe0ac6deef0c2381a9619fc998a9234a8bab4de4580a34684fce88e9186685d445391b857a1e9a00aaea91e3d4a1894c46c56d857768476d4c7dfa0750ca031dd662349878e316395275b0f3f9fa99059d8d1928f02b99b776d8cb44f8144cfd128afcafbc79b5da48706619682a08334b03be27c0d40f2367d32c6e89938ef61d0efc25037d99b203aa10bdf7c17d2aa4b44780d08a48d8cf5bdc08ec5d497d66ab9482441267d7e94422ec34a89cf1da0a011629c6b9386274a328a3a4aa68cf2191f3ba334f48e92918b0fd32f9899d3cc27308daa5c89f9776752e52673e7a1f8bbb12b932778bb102c5d0ef232dd2aeb804b211fd5611e5edbab26a8682da9432ff0d612bd4bd93f2c9c8d75c2cec8a23cb85c4da1cb53aa4690f4be365149f158cc2a6adafa56e5d5b50c03976923a80efc26861b464826dcf0ad6d683810c6312372ad4b7aa96c3327b02110bd6940b2d4576ed3f5b0c68252c47803863af4dceba62722b750c9bdbb77d4166e55a2968f68f5a7800a09ad445231ca83293750a4d4573a67c7780797b2d33ad49c8e6964e78bdf96d4165ebd8dc3d034f1d1c0b591b88eae4ba00ea53eaffc25def89328140441f0fdb6e4cf20e5a827b1039e572ec1af62b9ec438341725b29c4cb8d9bab4104173b81689663a255091d47d70149b2a1737416218fa4b307e47c41737b1c185728c4b5a8f2ab1340e4a89f17a3477ec75e606d008443ec72f8f8120d727c74603eb2e89b6f76d6c1141edcf632499b5d2339b1820be699a2e92959819e93efe4324c462559d381a2e0993da023ec757866595d3d1a7363b1e923a0b69a12d5645aa6b17c6324560d357fe74496eb0fd6710c2d35345ce636b81744418e6f2e61a09cd20af4a8479c2da0a323e0ba83fc5e99d64a869f5c4042d9ac33e2a045f402d991ae8a0baaaefed88705590a4c5c2a5861f628733892e83e5e28348659f318b0488e1e28d971bfadccc3e1691dc5bb3f88f129e93409f9eb7402cefa01d086e8f24369a462596d11c56a480709f2b302dbd028bf6613ab760cdb515033c4d59f959bf885ae003bd8234198134331040fc2cafa5d5e48cde5ed3ccd62bc00ea501a166a580fa076d4a441e36e190e0bf956a22cf2645cb19abda1f8b8d104f83b7e5e15264f2c1cb7c39a44df080117b7c060b4b18a3e00d22e880bc32def44fa8c4e4edac97ff102f073f92d3299feeba84ca3a3cabccf910a68e02bf3a761462f4694a3e8860f112f98bfff3d8f9d62fa175efe417df46c424af7bb0db86aff54ab1bc69598ebf17cced143c102c65bc3722f807bee9e5baa6ae70dcb4ae2e5aa6c9593a491d08fbd183db46157ae8eebbaeb8d9ed86f0a290b966972368b9afb44932d34a987a8b5198754d61200eedded62577a57a4d1f31adfc7eef957477525888678ef8100d69b2f5d834bcdc23cded1b7f8734a21b53e251ac69bc3d97c95cc2e1171b98fe9dfb4032e5c98582761bb0d37f77b4ddd6fa1800dff298d401cf745053693004e5a14c44c7122d09b924c7db9301bbb00012ad053dd8e53bf8541abae1681ae990dfa22ace1a26d10b6f8d059a3430389975a7afc177453fa31e651720fd5e2aa0e98228df7584e30cb4326889dfd81cb8aaea6bfa910266ea93a4f9fa247f732156b0048d46342a4d34d410b0cbd1eeeba8a1ddd898e9ecbcda4a7478e0f16bd1b8aba9438039b1a13415d4f97e6a71efc2817230eecf0ab5976f32f9a3640d24bdb1b35cf28d3dde4bd71994504fc77d628254316f95bb0f0a5ad119e3c04fa6d95dfa5da9976028650c67c5a5327b5b17c85ca3eee68decc91b435ba128f1ae48afb21ceb668b8444552854f1211d6dce989ee1ae021f0a171946a54ee9b562e4d441f6be1f5edd2aa6af6a003753e1dd9193b16f54a208795b8887281e6b4758927a29c3b68fe9f702cefea74102721588b36311a86f6e086ac075e4df6f7c0217d633330c834ecd82eed0c4a7b951a2d9b5b176217c072279a24758012b6c91d805cb7986f8aaf89a97f7a9b75cd25b3e5c200bc38c03fb028c8adaf549112bbdb4fedb247f9348bd4409879a695c0bda4a1b7b6762221d99169f7ab8cbc29ef8f9db0cf33a4d914f0001b8a42d5783b2d892892d651bb711b806bdcc63cd9d495e58445f75fc5c7af84dcaa9275425926c7388e2b6b75835f0eeb8ede246d9bf3a64b33109b69f0c3ad6d27813ff257786bf3f914f38e5aedffb4f702ebbad0c928d2c8d3ea73111146b67d97507853c55e6ef1e970844e8d4d15472ab23a3077585399886337572d99fb67a8282d55b799ae81abf0460a631ac853c1435214944a56e30a56ba32f4b7a9f1bdff3c3f8c4becf5f88eae2ca0ca430406d94d5f7091e311dcfed882a9d4ad9e6c5dfe967fc9ee2a415cb5f4edb324020877a18a0a5028ff6d6d7dedcf01dd0298344d797092165a1f1c3348d4d1d8cc4b39d9f9decdb1bd6c593e90ba9466a7bc47e0382718d52982b68482e62310549ee581ab0a235cb9ee8eb130e126bc02422842d224497a540620c2a9988054a31bb971dc2ffe218d3ed001b056bfb1722f33fb6bc4186eb18d2ad14ac808cd0316ec2973e1429b27e442dabdaa5a9cea4d0188cd68982b868f45fb821a0d5f16ba8eacb52077f6334dd4eb54f8fb482d566788d8362af03b88b959cc96ebb6ded1340e1e17a398ab9c45f3805b72e0ff0f5f7165455bcc6903f5d41ebe25a05e5d418b8678814d89a5e8333e1d7da83f67e246c9034f7efe92596336bbd68add5dfd05eba26ba0f49b1ad4cbcb815f198e259914c52046069bbf9c595b263ddfd7dec4b493036b721d7b8bedd5179a7dbc246b5a1d28cffaa3afe7aa128cd347a0a426f5e22514bf142a4f93c03962233e939b2df8ab5099124d15d2870d0ea698fe9760f22aff9606fdf09da7d060dbebfdc00d2e11bfc30bb295bf1fc94e7afa6f9cfe3784fb25a3c9d674bd20ce42a02635df114ebaf38156d657beefb4cc2d561a18054ad72c85f1ff9b1302ae4b87ed587c8ca52ce58705389b790b30892e0f6cbbfda0cf74e0ef809edd330eeabddf07dbe599db95f2c320ad3a5d2be0ee7c7517a086bc3e03f701c2f942f7fe02f4917e63ee321e7c9e70baea199a1c2cb959496c4d8380c42ab5bade55651ee0d5b1c3df578b89c30aca6338ad3b12328969ee0bcb660dacc88ee2848b8e9d4295beabe18bd94134120e632f7f0e2003d06ff4b10a85a8b864cb60715c39c4f8f1826d3690647fd111a94462a143745a7b6f4075e2dd9a2f0f1f09643044519cf019d3a624e1922022b37617239e7f44ef57d4178ca2eb56167feaab630e315ee4b85eda404f93d9125e957498e16d6a1ef9611b62209faf32b3c8e067ea05645caa772e514b1842a0b567e0b3fcdd4b6a702ffe30df04e3e8a3fb30785bfbfbef5d60d5bcf750f1a7e9f5a61de1214ad73717f6876e0535a5fb157f45fddd84fd0bd795040f17f2b49118c1608307d62d03b9478b309088c084a9e19c173f3155206e9370792ed2b72095f71a6fc13ff62df1e747c377f52474f52aae7de1b37185a2a75e9ccd4e7bc9b2974b1d6b2bd5a1b6dad2c2eaa9ac8927fea7bd018c09c0183d061c90333db89258c02205f8bc774152527aa846276b1962d8fc31600bed4bdb3813321182ec204a0605e61041fd6fe9f9a2e84d5d105da30c30df73b11adbc072603b8d4657384f995cf8ce0b1fc5907c03de8df272a92478068b4123d55ade75e880fed3fc50c84f7faa66935a6599145adc97f25f622687cf3cffe8530425c2b47f9cdae7be6c1ad83cb389c86954633af6eccfe2691653e5c43993b4c4d4437b424a0b120c0f28df9dd7fec4272cf91e8617009c3669a4b30eea25dced2cb0174227db2396e24a4c9b5cdb3b366f53e78df0d1aec3047f4f709642fb02a9e0411b6bb451344c65b8120c62b056049b887fd2a11054342b405ad29222d8f41521b232d234abb265683dde6e9198f8f8f1d08aa1016016df25caee2e5736daa31bf7a0523dd26407fae84a0b6b213ec8834eed9600cc0d58e7198bd0e0658796d86d16c4858fb131b8f176bd31fde235bf8598759a3a10e5f079b2e30950b0871a9dacc0d3f79e790f5989b11b0e02cceff9812575ab37915ebbf53487145f52c2c522f8cb84a774d1e16d4d8df5311bbd78e1951d7b37a593c51fd4957cb84581fc65d05bac435d83f4132786a3349f9216f9d02485e710347050c39807d01b655395a84a9833725133c4a1bd3bb483bf6f15a5ef5879010407a3a71af81e94bd37d637d0a91e5b1c2b00fd075b7965c76f4f45d97e1ce77e0172d48265b9b4f1b32b134f4f2a73776764ebbad62fcdb76ead74312d31b28bd403bf4413eb7af132107716d8aca5c8eeeb413dbb1d08579cfbb14c14f0fc38e5c2e5213358fd9a9e669da9cf8ff59e74cf768e93a4a5f7a2979fbbbd08b56df3cb94a7c33b031c7ae1dbd43598fa8d272321ee41e406206e7ca06e82955fb98f6ad0ca97a2bdd67def12acb5d1edd91133ea8d39d33ee57896b412d4a2031a44c193bc8cccdeaca3c56fd991957233c1ef1bb2a91ced84890e4e5e893642558bd6ef8acb1c08f592418edce3190f81399e608e5403a05e6e9560abc8b8efb11f80151d971d7e614322810a7d497797c922473908f307246cad618aa6a75a1352e2e01d824755705463e724cbcb35a5ad09d8e8725e9005f26f45c0ebe6496e142cbe3e6388df97c4d662d474bccc74f3983dfb5f9c38ea62d65a75c2aaced7f666fad9edb6e293e9c3489c4ad4dc2201e7ae37cb0c6f9f4b08547412da6868c9e52ab81cc23c80553815ffbb79b7e18c3d4a2235333cc11224fa2f095d0d64804952acc0b82c2cec34fd0abe5dc2ccf8d6ddf1951fba9cc2880c52b395793c6b363bbb1a413ca9972c88b3854d9e6c169ac7cc9562af19746aa9d06473d539ed022989aba47fca4ab5656bf703dc00cbf356964ea090f9f8ab1b84002059980f15119ccdb0bb92536c3563578855f358e936bb64c6eb0bb8c715f17f569019b2c140569737cc2735e85e0dada1eedcc361f0a7988084ddb0765fb701d590587b97540f49a994742d9b58758a623cb031752d5e9f72dbfa6e6dff915e63b52173abc8cadec5e1e9a83af6f9bfee9e54429facd75269ce4309e07172060cf59f200a6976fee4978b7dd40cefbb8629ab739e6c088f8e20171f2264f9a0b3c8f6b3d22582aab6c1a09de0d288869ca934db15b78149a8e85b2d13146ca757c6f1983d42093590aa64601fd4a75709eaef4adcf551ee618b4a47c217256ab46b505c720c3f74edb7590ee6a1d73d10f5c28fbad95a8b55c3e102010886a716b6c239095c4256c12ce14c05317cab862e17178ec767878ff542cf1dfd19ced9164847a6a288dd020bfc49f59df8439b4faa676bfd110d78ed506474f193dc9d53fac55cbd6abfc80c69dfb65a9d088befc2150b6d34ab2758e0144817f42804bad62a918afe9447432a856aa5c32aac2c98ba32575bce777a8e591a77ce834c6b33be09190da7bbc832fb2e2ab04608024f6423564bcf9b6ac9f2575930c2a770c293a03a57de7bb0e1b65b7e83eca1af56daf9e60f3f4b3b68c18ee187f74eb6b50c774bb23c1e73d396341061e67c762170e2dbeaa79a7a73364d54f40c4944e0842505f4c724940cfa3f3ada9a30c38273dd78769cd66496cbfac0d338f3a342d28b34022a9fa5c00abb7954aaf5e75884c69a118f5366cdd11eacbbb199eb8563dcf9a13d380baa92bcd5212c29aaa1fcdd56abde6e2c4beb38710148bdf958316f022a0a580578f50975dd8cd61e0791e1afbe6fe3e89729e6eeebed36b8812b7bd9ab736fcebfb1b5c9d706965e28855ad8e0c0cbb6b46f69690a2101ef7e8a695dcbb8860a32a968e5f1541af7eae80e3be170979c410204eaf5478db5a50367b4f8ab294b6f079b8f56026c6a68d508d52964928d4079ca6056216f01f57a9d80d807582b02da0b20ffb2e35f3945e92d91323f0ece7f12db1f0cfbac7f1a1a433fc5e7198847cae1e516d0e7581ec45d914cb22dc6daf76d9c6301188b8d11cc2b41026e1cebaaeb90353daf484cfc19dff06ba17da004a38aef42a24143476fbd58eaf751f9754311f3239003057e4095603bff8baff7cfefef2dd69bdea7b43a6a57b7dbac483049bd79e6e7abcedff1dbf042c831ff132800ca3db8ec7f308f46f49ab306bc6602e72f03d03779a5158a26eff53f8f0819440b9b28d52f3104aad6bff0f889c560b4256953916807a40009bae8ecab6aa697758afd25acc8448256c6b37a39085b26a805ae3c8979094e4dcd2d58d981a1ed80c4294724aa5182b03bbd510c105c598d5ab9a5d818c9023fc605475eeefbac7970ef08962b86f2b1e5d1e19cbb69e3b5452fd382d5dd2cc5c686a7c3c4235490074b9523ef2cc28dd3b3b171d3c5d673768bb698e69c37f912219b9528f80544c6a2a60cee135612eb4241ec09b5385c1de5e70d35d952a161e51862b739f78d18bb8dfe783094d9e88e91b5df07045a5560a9cffe150c64e7ec0b724b01754a18e27e24118a32d613507888e5908f152606dfe0da674c8b7c77cab1784e7d818ba04dc91f1a27356f086ca923ffd5c5815205d611a0e6e2ba97e3665d9c26880831bacc607ec8aabd93b915aaa8df167ab165939a424958c3476d0cad8dff2b913edd3461bbb3f7a624ecc565a2654236c18bec3d4ff22eebaf6144eec8c199f58d883d9531133881e3abcfff3392336e8d8d6fbe509bbe4ca9f13e4ce9c36db3d2ac2c0fd4fd49d8a8c6eaf5cc43c32ef89c016e5dd089c96456216d4f97c0e4f5dce9c34104ee7fcd830824318c164938784c1772415c7ef8570e3cd2fcfc91a6a53170806f0fa68e26ce394b1f53e596ff92f6cc2f95454c499efe5832acf58d8ac9c2f0c965b4a89d8cd24f00936c55190b54a42df3cf2d663c99625ea4c68dcd3548d6f2cbcf7269cefa60968b371b2a1c9ae6ad626e9f1698e6d1d4fa007d5be6178de05acee9d23f7b06fa3cc09a594a2976783abd1fec3e01c7b08191cc0e0e190b7c87c9e1d90ed1713737ca1c1b2d79a3a19fad2a5e05860a8ec4b66bd141c482a38aa161adafdcf0af2411e24baaaed984764d576fa3613906d8818cab60bf896b23b77e6906efa8bcf6acb5a5a1dffa0e098c09d4aa0e68c57cd65672655a91b657619987ec9e2c7df9e8b2d4975471cb7f7ee113d63faadd296b7e86b444ca074593dd6728761bda648a932d3697ad7f8ffdab83359cf440787a55e87ab5ba263c1a6592b693ad563de0c813b92723ea6c6a8bc7d7169008cfa1e8e842af47eeca9d548bc508937f4699abb1a1d5d78a259c5fa80fbb1319de5931e26cbe4c86267443058343283e7027549f472f1870e4cb19199e94be026a240ab475969708847ec3706e539d6d68a1fbe45ce00b9a99caae131fb42ccb8d01298a0b5d3c032329a684d7f23ee2d60de87e6416fe9dbd9d96a21d51157a0053625bfbeb65a83edc9d98f9aae43563bfa07e62d5a033887a8ae7f3534a3cd8354f388f6e661ce10e7e36f7e843342add7d714483550d89ef791e8cef4bbbf78fccb02d86dc82d3197b812a048c3c6b45e7cb511dcbc6e4aa92b906392b987479457a28d32c1f04216538841435112abbd977002c028ebf7bae5d7f7867ed8b2a1fd26e889ebc1b9ec5a59c7b050e39152aec79307323cd57c7b57e4ec4d34743ba6f04ad5792bbd22f72ac0e4dd6a003548b137de66b92019ca8d50cd4d07be22ad725fbad405d300fb24b23f43b96608dc121361b071ac6b57ce1326163e7231d0d0b881ea88915c856e0c047930ab68b533c8a820deecb884ba3f0637fce42d8f2628893ac2760740b49932b57d68ecd1bb0bbf8708a9a2e3d2916b66b1db0e1a756bb6d744d2e514b858e03231e1639d80bfb1122f99daa0f7c4ab1c449a17103cc9ce7dc52bdd300a8ea4ab9fc50bb422f925dff768de3c4caeeb73446d85b0549978bc29fbd192d05e06c3c9084898f889fa196505f8471da1bade545b5eff9c8da114ffc9ade975c17253c74dba73ff972516ca9dda7b7e18e41401d794e8eb7e251cf29c82ebbfdd75da766b3781deedc08731cc807c99477b6ab4f80070ef61c3da77a019e10e331f7f7a7a54118a680f063547858cc76e243230a09cca5ffb3bb52dd75f4ad3d619e18363dc68d8342c6ada1f8d4ba13f13804faf95815029cf51866f2cff8fd1eb7f6b5a29671460725c7bb8b49917a302976516b4596b5732dc9b7010d3c39470f083298b575a2f0ca20253560f2fdad7ec7b136677c3702665fb72435c9cffb44f970b2c6f7d132de66b9ef50d050db865d289c9674f721c35f382d092a7bba2b8ff74f74209370e37dc18fb286ebbf8d3f68550159cb381e1c6f3a15b8c6353cce96aac194e5d2be0ef7ad6119c29f0afa43d67bd51067dbdbfc7d2f18983755ebe62cba87abdf43b5881e7bb5b42ee0d27f04c70882ed184401bd8bf68b966d52bef8b4ca26d709512a2f22ed65d0dc41f0e4e104855c3e624d4c3e912280f2de802a3be34c62f416bdca4bf4f3ca9be2b2d8c1f2e4947928f903af85add285f4499887d24ddf1b7aba4bd4364d9194b2f9b80ca6186c206a248395555c925a58fe3a67adc303a777a2e9605132ca15d8fd9488ade1a30f932824b40563a6f44dc968b1690df65ed5d59274d9f1363fc39cfcf8ef2e629d726ad7e1758441681f79462f1b814902e74bd2dd4195e351685bca44e732c4d010810c116cbe527f40fb6a538c435f6cb4ec9c08f8297df98d438c22ea3a585d4d646ba46c192d0ab2fed995d3ef9e80347c5c8be5272e4d7d81d9abdbcaaf265aebba46fc5dc8f0171118e81478dfcf23fa011ad95927a8809817750436454e8d4e07a307c04511b0bc43cc8cce85bad74207dcf92b024804e64c12532cb9bf747c56265dfb620190872b233283d47ff095708d3f3a36527c22c0558f3e466be3cda01406ff113cfa75e50db7ae964f1627fc9ce0f2287afcf0c3e08aea559790b8a8d9a97ce13f4f5c6af43004da253b1cb61c6586a84ab79e5bfc72f6ba610e3d587d4290036abd375745e713be74956fd8f203cf0307d7ee195921233ff45b3ebd6e3db11a75332b0c462b9911e4c8ad068645e6501367db43d7e33ac59171e8ba0c7be3441e9f63c6266935f81c21969e62013fededdf0d152a976bad7f1c08056760d13195c980a883a8a5d0b5721a2304df53c02cd3e36343028af327d815f9c2bec5e79b477a27e99653a5af25ec4071e212d09ae41d899168e997351015554849b495816ef87c86d6a41c4de993811bb6dfe924f6eda81abfc9367d4c48d0a40e3688d6c1cb9571578426a02ddc5a73262cca4af8be8eca16eab7fe3fe54f32c39851d8774c7aeb49873d02ef0821661c49d3ff318a2e439b4faa0401b39b7ac36e8fd7f07f306cdd55811e11fc128be97d9a89c970c852fcf2c56ca1a857a2c301f8bcda10c3f363da249d9d96be9335fc5602c7651d4f0b649fe2729c9a4e9fe078ee624c7bfa242e275aa7149c0c7f49e2030e70ef9bdd6659693a89c20af99bbffbcc4ec66d9a05898a1c629c109978a237279a5a373260714a827748c1cef000bbb5a8f1933b7468ece76e01d83af34d6e08d33ec0bc43952ab29dd4ed1ea203c95b78128c9c539db1b8ab0d5255dba6536b0b90156d163291ce2299c7e6b7b832cc701d2b8c91cb7bd5aba3ac108d97720406cf2a86b2bbc595778dc53989f027533f3ec3b9c1c7cacdfebed7afa495362d6d813e9355133f35db39cd76411f5946652d4148f2fbfcd25fa16ec68fb48b582e1d5d51652ef251631cb8afa337eb5075079dfe5e038ae5452620944b7e632028a3cb9d165c29ec6f82a1a54ae41307c79d49726e2cb4ceb1df20dbf2a5cb6e78097c06ab261c28d9c8297f450c1967b6543b4e24e1619a00dd2e8bca7aeb95b9566492bf6749c1c52cc0e705a0f4a874a3eb51fc8660642760d35cf6cfc58606770ade01a3dccc15ab9aae93db08cb924442f6dd6db07e5b0c750400ce08c3adb799dcdf8ce9d02d7cc669369bc76ae428ffe40091be018016da26f28a6d721170669a57686d351770b0cd6d0b4647d2b116dcab233dcc0ed826ec564f0a60dc449627c89614fcdc6a83de7c3b7d31c126b50fd41e0a228307d6b57e4b2c7840ac05f1f15f8b984866e0ffbf433295f69bb174c8295b90d194d2a99fdec406bb9002c5f34db41c0a8aaabd102e2f23218a62d64d85898dac71b6763adab9b3dbe501b2cdccab004ab943523da613287fe2e9b90927e86c851311a2a0cad4131e7a98d97b8c2e1537376a4218a50315e558b61a73de9b975a9126e7ea4a5a875d9b72b297cb77bc546fb3f322ece0348fae4f899104c775435a63ed49fee99b91458cee9f6772f7d4221456e7c472f04b31994879113b9cbec32ef8c619c9ab62ff4a8a84e731802fccdb26c7f36da758b0409fb8317d0e55c32ed153e9c21554c9f99faec84b94db75787616897955b4fba1a3085fdadf65acd701e4e7ab705de22ab0f8f460b6df815fb653deedef43ec5e894f21cc0b3c888c9582d4d123ac4ee4bbc718558e83caffa7699d274c378c4bfb70c39334405c69013ba1cb51ade54688b9fd427156799f2340c4a8a690f0d0ce9adb6a8212be318659ac3f1b86bbe8a0d488f418391cd8d0847db497aa828c4555a6cd2a8eb28a544b4c1c5eaa58eee56bf599ddede0f4a99123e9350f542236556d390a6d4d3a7346998c52082e9645014af92c6031abda5f82f9e91e11b97495c4a220c3d95e685f8f44b79e304e89ffd080c9f94ebf6e7f1baa3f3dd7eca7b404127c07ac9913330f19ce4f69663920dd8a4a45c9bddaf4de05dbd2508f4eea5d0f5a991e4127b8a26bd69af1e0c094c09adb6595dc02b7766edde47564a910b8e8b064516569ff979f94293fe90683aa5dc21c2f5a0cc71a202586d333c904f3bf4021cb8edd19fcecc6ac432aa0e42f9db47ec4936aac94e16abb5f9ba2479c62d5dcda1b478ebd005604895d7b9ce2bef7db91b357cd2bfb00d1b646210ac6a3980765814bef33a7926448c3bf5d5728e0011e76c40d246856e1e16ce6639472c0875173d507e24ab37662fa3cc180e18c5b9663d08fd4e7a9a2564528053d81c998ac386c13c935154ab46557f5e0800ff5794305771a0bc5cc8f36de31704f1850d117875bac3585802e768ebf591a10d589d91423c17950af61f980d5e533c15935ff7d686043b10d2901f0e0b0a6c77f49b0481c6e2b82fb5eec7fe820602cf1ba2e9bd4535659e4e6e6668ca81b31533abea8c3d9652bfb317bbd171417f2ea6a716fa9511b1cb483724a73f0cf85a97c73485335b2345242800827beb077f350ad167e3dd78c1436296f55adb116dd058de50f89475ff4119fa4449c845c72bd10d1fce601a2b1c6061f63ba91744e3d6391a3c73060b291e8dc7797a15d7d1cceb3b207a49584acfac8ebb2fca48edf30ff394acd23107c7cf092e155cb4ddd4898fe51dd0b44f127e2079d864c18fba9d4cb9e3ff7ce75f6a436af44d3056af7c49b2815f8ae91a7280499eae90a64022d307b1eaf40edba61392efe4b2b56b3bdee6f940d8d027aec3ee384c9ba091860b05b4e64ad9332a7ec6cb5be9f9d09ea73f7f893f45f2d0bc6865233996ec3e23ac48d5a0c755d5aca36fbb697fce76584bbfd508ca5e1cfd7af2db3193d73397d6301d66e1fd2a33362e4a0648b228bc9fa58119ffba2b349bb57b299b822e19ae79e27e4a07295e9ae75772e2631aabbc7eae7244c66aed4ca1d62940849694ab4e545bdbdfe2358f2e716c606e1e3c406e0935ccbebb8851cdada47ae489002cf6f6cd35568b02262f43a8080ab0f29fb2dea13fa4ca2b8f6d5aaaf65bbd963c0502d02c0c6ec507cba1631fa3d6cd369a5ce21f902367cc79518a23e8a79245215b63056817ddb69fb6755b00785aa4dd742188846e702ce415bbc91679da6e040b4a3e77eefb514273c53163450be7b261ff3c60b5a6d3865ce446401e052320c1bc69f4d97c9beaf6d50cc2eb43f102ee453c9284322c12a8fd8d7a047bb6c84d34736d2332c4b1d1acebade414996ef9cef28ed2813448dd04e1efca82ca67b7943e17885de12b2df7846d9b47e133e6507d15f9a09e9e5760917435ef0d4b73f15fb76986dfe0a899a1aa13377abf56518ffe2169e3000ac6ae22177461fb9498ad88953302656ca0adbcbb82317934178f9916e0b48dbe27970d71fd500726394d10ae90ea23c2e845087999b9d6694bdcc0d9fc0d0afb1a8d9562ce51f2e08c46bf8789098c8fe63607a656cd97b2bf4115062248213d4c5e37f8cdd0757c5384834c221dd916d12608768c8fb4f2eabb56b3beb700d34ec762b38dcca2cfecb18546d0465e62f7ea34dd4562ae3e5845e9bb81e89c248b1a237946840f8e5014fa2e8ec314d22f55f919ad8c32bd96ca204d8843a75eae6610637abcd1c3a5b50951a4d0c17e104bd7ae9acbe86a652fae6bc25fdedda5b911b2d8ae7fd993aaa3fa61a5026fbaf14266d75bf637aff4da2956428d9ffc0eb3c4fa396f9e440a3bd8b92bf58eac01b74d7a09ef656b0ab398747bdbfde7f2f68469a6468cd0ab7dd73f1886d6b5cea80c181ae039c177fba9a2d2c0768b70aad925c337652c04f6e583304596c7d161970e338224614c965e6456ff7d548da26ee2c0898a24abb4f34a137705dcffb710d78378d08524e0ab1c64ed2928106020e4ab3cbe6876e8beb0fe452ee1f4da563a48a5764ec9bd1bff2eaa8186cb96de541ef0cbacfc020ecd921b4eb98166aa5f45c6a864df19b9b2f9e5207297e69a21ba498e48c9fe4ffdb143bbbfc04aa4f6e1a7f1237c1869ee4c20bd75abfe06efbb1176dc7f4452fcf6252059fccc0e43b916a80411cf263c495fb7ddcb19038fdffc10b665b6cb02c130774a393eecf2481b3be24ebe449d9978e3f6079a18184d0fc11259466de102552bc007de7fbfeea72256e0a1c5202e8cfe4e5596c5ed1e83787573d1b9aea51a748ccb8e1bf2748395264b54be9e051310a45887397cf9b23d5f953fcf0ee5c0d446d2248489a6466f2b25b7ea723c2b5983270de6db1829e58f8ce51882aa6f1c990703e4c67fe0ec3dd482599a3beb38a8821a0ab75fc865ba8c0d43e41c8af14c96bcb2d157761d847a6b0b82acb38c87228c622799d1339b75427bcad42d346183a6ba287e4e47cf71475f4bf64828035fdb2e6d54aa924439001f33cf2f612293d5b4214d9a70cd2c801911cd56128ef77cf6cf97819c8afd7a9abdba1901808924773def1ad397133c9624b11367861495e9ac6a6f5b840bd77026664ecc856f3464c96b6ddf76c7f338796f3269e2681ff9b2eb2824ce2faecb7066b0394c384f35299064404daa804dccf69e773e376e9b689ae301c05d05a6248e0b26f0c9bac00382f2803f137fa46cf287251f7bf52a91ffafa38adba95d5dc4103aabb2f22e5e76e7d1d032ecba495032cfa60743ad18e4553f9581bd21ce5d5fa6f28f7c9a2fa042bb9dac6613e7801e3dccc316101111225ab91f3c3117d94a2791ca909ca14a2dff3335ad63619d98aa183056b0799d343c484f97ff3efbed5a9d7d124e94af3d551e205a3b5bcd8bddbe568a584ea8cdd2f11cd2453531c2ba54dced3717a1ceaf8cd143795d5b38d8f9c3ca4f1a87d842503f0c0c0c3e7ce9156c68b7eb9a2a3456ceebbbc5c563f818c08e4e32b78bbdadb9b2fe53fd7c172dd94d55e486532797af96f7e63ee950b52cccc63b6bafd3d90ea1a0370b01e234aedc0d7e3446349c71e35cc8367f8bda2f53d936b03732c420c61c3040c67eb27adfd09c4ed7b4f9137040cf6f0eda90e85a71aa4b0d5dd97e5ea7c3ecd8537b602461e2a4aa9d85231bd84ae9157574fa59ac0a04e0d3e2c62ea4dba141512e7be13a351930fd671b1cad97f79d77ea877c226f9d5bf4b9549776611b22e6df4485f83250e249faeb655e3f3733e0734e4e90d45c7e8ee99c397ac29b90166f17b7f83ec8d7c7e04e1e25098e86b2bc7323c5afc4f631cf3d5143658f8e4abdf82d3dc26e7a64a6b1e2f4d3ecce616d440dfea412ddecb51921a02d3fee0baf89c88c6bdb56cbec4f9acc12170bbf37fbca5aa3903ac5989d48bd04c744dbe777f49b3efadd8cc2c0e147d5152748091dfd02b4f7451548ff68bf39bd50422ffc48a793ef8993065f21294a422b35d39efb79badff47fd0e92cf1a3c8460770ee460a76ec1a8433d6bed67988618e793f3c5480171fe4a6fb72d2940259185e5614be8514a2463b4de4852d0994f581f9d0eba7343b13b08eec2016768c7bf11c47f8af05ccf3b303b25fa308745ccd79407decf7cd30d38ca773531b9e160aae2cf777d2be71f667e6918e8ad5ccc6057b4b6379b75ef2b9f63ad626475c40f987549322a5457f3037f3732054cc660251d6b40b10621448875f260ba6ff8a75e859bc50988426fdae25733ca7fa34edfff3d1559605f4c005cf3dd57fe7eecc65cb5b35e234619119a4438ac55d51852888999d582e4da183a7fb078989557cd2b1c6593b119f41e73709edb74b01244bcbaef6cf46966ec55b8ab605fd9bd7af4f42f49dda78872191af40deb68b7aa36c5de6eaaee2b2388ab04f1c42eccb8cde0b297b5ebc85a3146f9488df8fa83d167ac5946c9866db0670989f90566de48b0a489eb6fedf884784eb9eff81643dc9e1fe3febaa30fa67a96d515c2c5bd1e02c18ad43fbb40486fa5928bcddc365715e4938302b47bb450fa257e91d60840f77dce38849618294bf62165a9af9cb5b951c6b454527633af492dbdfc2870e1503a3ad08d2e78ba4b635b3cf521cece473972bc31d398124d591117f9b854ece6a64b9cf719052535ca47831df93537dca20daa1ec30f34d820383ef58343e5d2fd2ac63db2479917c84cb1b12de547df673262b5a2fa29a2130c814548165e6a85faefead53484658f7055d275def693ae6e89dcbeacda55b46527661bf4421f5a5df505dace2a54a55f74bde31345e9585552c03fa1ac3fbdf492e171ab12a63f1e6fcf81fc2607ada313484071f8d90d4f47d14aa73ea1d3a36d9fe536b704fb023349016f3607a3bfb7d0831856b0104770287429b066624e6d0ad284f3e4999adc5879bb155d1bb2e535b6ef4bb6a46d90d80f7ea3274138c1c35b52cd7f2f5fd5e8ee297ca2f60416d8a6bb84c2fb77efb7e8633af39c9a1500951cc3928ba603568bbbc216f4c494a99461b52626c3ff2dbd9b03abcf740ba0cd3bf3259bbd54bbce1bb9614322146ce07764b9c8e5049683c94a67386145da3487a046ee63aa7c7ae658315ca308708e10f67c207038f97acc3e83594cfed483bd0fe7e771f2a30f4c039ca3ba8412679fb6b1519f0c515e880791fe5222e13f5416c3dd6f5e13bdaeb6afe61ab380c396e6cafc8e541f49a85701531a8e0bb6b8e9ffe8c6d0631c90abb21def748d9346bbbff2dcfeaa2f8d93a658b0ffecba74a7fe3a7489d5dda6505c76d94fc916fd3f1e1cb2e575fe6f5116b169a4fa7af0ebf6fd6a21ec16d77beae7cc143b8281b7a6d59eff454fff8a5beb14204d8c37ac585c5e96319482d2da5d8c2dd3b0f5d7f57604ca70ab8982d33c3a7c1e9001de1d41ddf1239390ad8d8a75a551b4fa50ccdc748aec61d3dde65e135c7c24355e9c48ad0fb2f54f6ad222ebb3c872663e98567cc31784f276a9cfaeec7c05e11ff21ae432ee5560eb2dd47635b56b1bcd4476f5b90bbfcfe6629f0c21b1c268cfe96b38bc79c10205dbeb7912d7b8b5b02d7c8ef99a7cf7bfdf10155249d6be182aa39f78db2829c7592be2c8ab427a3a4a928a484b969bb7e6c38e6381e6daf858</script>
  <div class="hbe hbe-content">
    <div class="hbe hbe-input hbe-input-default">
      <input class="hbe hbe-input-field hbe-input-field-default" type="password" id="hbePass">
      <label class="hbe hbe-input-label hbe-input-label-default" for="hbePass">
        <span class="hbe hbe-input-label-content hbe-input-label-content-default">您好，这里需要密码。</span>
      </label>
    </div>
  </div>
</div>
<script data-pjax src="/blog/lib/hbe.js"></script><link href="/blog/css/hbe.style.css" rel="stylesheet" type="text/css">
      </section>

      
      
        <nav class="article-nav">
          
            <div class="article-nav-item layout-padding">
  <article class="card-container article-nav-card content-padding--primary soft-size--large soft-style--box">
    
    <div class="card-text">
      
        <a href="/blog/2024/03/22/java%E5%9F%BA%E4%BA%8EPDF%E6%A8%A1%E6%9D%BF%E5%AF%BC%E5%87%BA/" itemprop="url">
          <h2 class="card-text--title text-ellipsis">java基于PDF模板导出（itextpdf）</h2>
        </a>
      
      <div class="card-text--row">Newer</div>
    </div>
  </article>
</div>
          
          
            <div class="article-nav-item layout-padding">
  <article class="card-container article-nav-card content-padding--primary soft-size--large soft-style--box">
    
    <div class="card-text">
      
        <a href="/blog/2024/02/23/%E6%8A%A5%E9%94%99%E9%9B%86%E5%90%88/" itemprop="url">
          <h2 class="card-text--title text-ellipsis">报错合集</h2>
        </a>
      
      <div class="card-text--row">Older</div>
    </div>
  </article>
</div>
          
        </nav>
      

      <section class="page-message-container layout-padding">
        


  
  

  
  


      </section>
    </div>
    <div class="widget-info">
      <section class="widget-author widget-item layout-margin content-padding--primary soft-size--large soft-style--box">
  <div class="widget-body">
    
      <img src="/blog/icon.gif" class="soft-size--round soft-style--box" alt="QAQ">
    
    
      <h2>QAQ</h2>
    
    
      <p>贵在坚持</p>
    

    <div class="count-box">
      <div class="count-box--item">
        <svg class="icon icon-article" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg">
  <path d="M240.51564747 647.74217627h196.07203239c16.59071043 0 30.16492806-13.57421762 30.16492805-30.16492806V165.10332731c0-33.18142087-30.16492806-60.32985613-60.32985612-60.32985611H245.04038668C225.43318342 104.7734712 210.35071939 119.85593522 210.35071939 139.46313845V617.57724821c0 16.59071043 13.57421762 30.16492806 30.16492808 30.16492806z m663.62841731-452.47392089v482.63884894c0 33.18142087-27.14843525 60.32985613-60.32985612 60.32985613H180.18579134c-33.18142087 0-60.32985613-27.14843525-60.32985612-60.32985613V195.26825538c-49.77213131 0-90.49478418 40.72265287-90.49478417 90.49478417v452.4739209c0 49.77213131 40.72265287 90.49478418 90.49478417 90.49478417h286.56681657c16.59071043 0 30.16492806 13.57421762 30.16492807 30.16492807s13.57421762 30.16492806 30.16492805 30.16492806h90.49478418c16.59071043 0 30.16492806-13.57421762 30.16492805-30.16492806s13.57421762-30.16492806 30.16492807-30.16492807h286.56681657c49.77213131 0 90.49478418-40.72265287 90.49478417-90.49478417V285.76303955c0-49.77213131-40.72265287-90.49478418-90.49478417-90.49478417zM587.41232014 647.74217627h191.54729318c19.60720323 0 34.68966726-15.08246403 34.68966729-34.68966727V134.93839925c0-16.59071043-13.57421762-30.16492806-30.16492808-30.16492805H617.57724821c-30.16492806 0-60.32985613 27.14843525-60.32985612 60.32985611v452.4739209c0 16.59071043 13.57421762 30.16492806 30.16492805 30.16492806z" fill="currentColor"></path>
</svg>
        <span>22</span>
      </div>
      <div class="count-box--item">
        <svg class="icon icon-categories" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg">
  <path d="M900.3614811 257.09082106h-339.81629553l-67.96326003-101.9448889c-19.41807444-29.12711113-48.54518557-43.69066667-82.52681443-43.69066667H123.6385189c-53.39970333 0-97.09036999 43.69066667-97.09037113 97.09036999v582.54222222c0 53.39970333 43.69066667 97.09036999 97.09037113 97.09037002h776.7229622c53.39970333 0 97.09036999-43.69066667 97.09037113-97.09037002V354.18119104c0-53.39970333-43.69066667-97.09036999-97.09037113-97.09036998z m-97.09036999 242.72592554H220.72888889c-24.27259221 0-48.54518557-24.27259221-48.54518556-48.54518556s24.27259221-48.54518557 48.54518556-48.54518444h582.54222222c24.27259221 0 48.54518557 24.27259221 48.54518556 48.54518444s-24.27259221 48.54518557-48.54518556 48.54518556z" fill="currentColor"></path>
</svg>
        0
      </div>
      <div class="count-box--item">
        <svg class="icon icon-tags" viewBox="0 0 1098 1024" version="1.1" xmlns="http://www.w3.org/2000/svg">
  <path d="M283.42180005 272q0-28.38857157-20.09142843-48.48000001t-48.47999998-20.09142842-48.48000002 20.09142842-20.09142846 48.48000001 20.09142846 48.48 48.48000002 20.09142843 48.47999998-20.09142843 20.09142843-48.48zM855.0332285 580.57142843q0 28.38857157-19.81714313 48.2057147l-263.03999997 263.58857157q-20.9142853 19.81714313-48.75428534 19.81714312-28.38857157 0-48.20571468-19.81714312l-383.04-383.58857157q-20.36571468-19.81714313-34.55999999-54.10285688t-14.19428534-62.6742853l0-222.85714313q0-27.84000002 20.36571469-48.20571469t48.2057147-20.36571466l222.85714313 0q28.38857157 0 62.6742853 14.19428529t54.65142842 34.55999999l383.04000001 382.49142843q19.81714313 20.9142853 19.81714314 48.75428532zM1060.74751475 580.57142843q0 28.38857157-19.81714313 48.2057147l-263.04 263.58857157q-20.9142853 19.81714313-48.75428531 19.81714312-19.26857155 0-31.61142843-7.47428531t-28.38857159-24.13714314l251.79428534-251.7942853q19.81714313-19.81714313 19.81714308-48.20571469 0-27.84000002-19.81714308-48.75428531l-383.04000001-382.49142845q-20.36571468-20.36571468-54.65142842-34.55999999t-62.67428532-14.19428534l120 0q28.38857157 0 62.67428532 14.19428534t54.65142842 34.55999999l383.03999998 382.49142845q19.81714313 20.9142853 19.81714314 48.75428531z" fill="currentColor"></path>
</svg>
        8
      </div>
    </div>
  </div>
</section>

      

      
<section class="widet-notice widget-item layout-margin content-padding--primary soft-size--large soft-style--box">
  <div class="widget-title">
    <svg class="icon icon-notice" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg">
  <path d="M512 945.02305225v28.15620663a24.27259221 24.27259221 0 0 1-24.27259221 24.27259335H394.0352a48.54518557 48.54518557 0 0 1-41.74885888-23.78714112l-110.68302222-184.47170332a132.04290333 132.04290333 0 0 1-17.47626667-48.54518557h118.4502511a200.97706667 200.97706667 0 0 1 76.21594113 14.56355556l20.38897777 133.49925888a48.54518557 48.54518557 0 0 0 36.40888888 27.67075555l16.01991111 2.91271112a24.27259221 24.27259221 0 0 1 20.38897778 25.72894889zM997.45185223 463.45481443a194.18074112 194.18074112 0 0 1-38.8361489 116.50844445 24.75804445 24.75804445 0 0 1-36.4088889 0l-34.95253333-34.95253333a24.27259221 24.27259221 0 0 1-2.91271111-30.58346667 97.09036999 97.09036999 0 0 0 0-106.79940665 24.27259221 24.27259221 0 0 1 2.91271111-30.58346666l34.95253333-34.95253334a24.75804445 24.75804445 0 0 1 18.93262223-7.28177777 26.2144 26.2144 0 0 1 17.47626667 9.70903665A194.18074112 194.18074112 0 0 1 997.45185223 463.45481443z m-194.18074112-388.36148111v776.72296335a48.54518557 48.54518557 0 0 1-48.54518556 48.54518443h-28.64165888a48.54518557 48.54518557 0 0 1-33.98163001-14.07810332l-145.63555556-143.20829668A291.27111111 291.27111111 0 0 0 342.57730333 657.63555556H172.18370333a145.63555556 145.63555556 0 0 1-145.63555556-145.63555556v-97.09036999a145.63555556 145.63555556 0 0 1 145.63555556-145.63555556h170.3936a291.27111111 291.27111111 0 0 0 206.31703779-85.43952668l145.63555555-143.20829554a48.54518557 48.54518557 0 0 1 33.98162888-14.07810446H754.72592555a48.54518557 48.54518557 0 0 1 48.54518556 48.54518555z" fill="currentColor"></path>
</svg>
    <span>NOTICE</span>
  </div>
  <div class="widget-body">
    <p>flex-block主题部分重构，详情查看https://github.com/miiiku/flex-block</p>
  </div>
</section>


      <section class="widget-categorys widget-item layout-margin content-padding--primary soft-size--large soft-style--box">
  <div class="widget-title">
    <svg class="icon icon-categories" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg">
  <path d="M900.3614811 257.09082106h-339.81629553l-67.96326003-101.9448889c-19.41807444-29.12711113-48.54518557-43.69066667-82.52681443-43.69066667H123.6385189c-53.39970333 0-97.09036999 43.69066667-97.09037113 97.09036999v582.54222222c0 53.39970333 43.69066667 97.09036999 97.09037113 97.09037002h776.7229622c53.39970333 0 97.09036999-43.69066667 97.09037113-97.09037002V354.18119104c0-53.39970333-43.69066667-97.09036999-97.09037113-97.09036998z m-97.09036999 242.72592554H220.72888889c-24.27259221 0-48.54518557-24.27259221-48.54518556-48.54518556s24.27259221-48.54518557 48.54518556-48.54518444h582.54222222c24.27259221 0 48.54518557 24.27259221 48.54518556 48.54518444s-24.27259221 48.54518557-48.54518556 48.54518556z" fill="currentColor"></path>
</svg>
    <span>CATEGORYS</span>
  </div>
  <div class="widget-body">
    <ul class="categorys-list">
      
    </ul>
  </div>
</section>

      <section class="widget-tags widget-item  layout-margin content-padding--primary soft-size--large soft-style--box">
  <div class="widget-title">
    <svg class="icon icon-tags" viewBox="0 0 1098 1024" version="1.1" xmlns="http://www.w3.org/2000/svg">
  <path d="M283.42180005 272q0-28.38857157-20.09142843-48.48000001t-48.47999998-20.09142842-48.48000002 20.09142842-20.09142846 48.48000001 20.09142846 48.48 48.48000002 20.09142843 48.47999998-20.09142843 20.09142843-48.48zM855.0332285 580.57142843q0 28.38857157-19.81714313 48.2057147l-263.03999997 263.58857157q-20.9142853 19.81714313-48.75428534 19.81714312-28.38857157 0-48.20571468-19.81714312l-383.04-383.58857157q-20.36571468-19.81714313-34.55999999-54.10285688t-14.19428534-62.6742853l0-222.85714313q0-27.84000002 20.36571469-48.20571469t48.2057147-20.36571466l222.85714313 0q28.38857157 0 62.6742853 14.19428529t54.65142842 34.55999999l383.04000001 382.49142843q19.81714313 20.9142853 19.81714314 48.75428532zM1060.74751475 580.57142843q0 28.38857157-19.81714313 48.2057147l-263.04 263.58857157q-20.9142853 19.81714313-48.75428531 19.81714312-19.26857155 0-31.61142843-7.47428531t-28.38857159-24.13714314l251.79428534-251.7942853q19.81714313-19.81714313 19.81714308-48.20571469 0-27.84000002-19.81714308-48.75428531l-383.04000001-382.49142845q-20.36571468-20.36571468-54.65142842-34.55999999t-62.67428532-14.19428534l120 0q28.38857157 0 62.67428532 14.19428534t54.65142842 34.55999999l383.03999998 382.49142845q19.81714313 20.9142853 19.81714314 48.75428531z" fill="currentColor"></path>
</svg>
    <span>TAGS</span>
  </div>
  <div class="widget-body">
    <div class="tags-cloud">
      <a href="/blog/tags/Activiti/" style="font-size: 13.33px;" class="tags-cloud-3">Activiti</a> <a href="/blog/tags/Nginx/" style="font-size: 10px;" class="tags-cloud-0">Nginx</a> <a href="/blog/tags/PG%E6%95%B0%E6%8D%AE%E5%BA%93/" style="font-size: 13.33px;" class="tags-cloud-3">PG数据库</a> <a href="/blog/tags/goView/" style="font-size: 13.33px;" class="tags-cloud-3">goView</a> <a href="/blog/tags/java/" style="font-size: 20px;" class="tags-cloud-10">java</a> <a href="/blog/tags/vue/" style="font-size: 16.67px;" class="tags-cloud-7">vue</a> <a href="/blog/tags/%E5%AF%BC%E5%87%BAExcel/" style="font-size: 16.67px;" class="tags-cloud-7">导出Excel</a> <a href="/blog/tags/%E6%8A%A5%E9%94%99/" style="font-size: 10px;" class="tags-cloud-0">报错</a>
    </div>
  </div>
</section>
    </div>
  </article>
</div>

    <!-- footer container -->
<footer id="footer" class="footer">
  <div class="footer-container">
    
    <div class="social-icons">
      
        
      
        
      
        
      
        
          <a href="https://github.com/miiiku/" class="soft-size--primary soft-style--box" target="_blank" rel="noopener noreferrer">
            <svg class="icon icon-github" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg">
  <path d="M64.6 512c0 195.6 125.4 361.9 300.1 422.9 23.5 5.9 19.9-10.8 19.9-22.2v-77.6c-135.8 15.9-141.3-74-150.5-89-18.5-31.5-61.9-39.5-49-54.5 31-15.9 62.5 4 98.9 58 26.4 39.1 77.9 32.5 104.1 26 5.7-23.5 17.9-44.5 34.7-60.9-140.7-25.2-199.4-111.1-199.4-213.3 0-49.5 16.4-95.1 48.4-131.8-20.4-60.6 1.9-112.4 4.9-120.1 58.2-5.2 118.5 41.6 123.3 45.3 33.1-8.9 70.8-13.7 112.9-13.7 42.4 0 80.3 4.9 113.5 13.9 11.3-8.6 67.3-48.8 121.4-43.9 2.9 7.7 24.7 58.3 5.5 118.1 32.5 36.8 49 82.8 49 132.4 0 102.3-59 188.3-200.2 213.2 23.5 23.3 38.1 55.5 38.1 91.1v112.7c0.8 9 0 17.9 15.1 17.9C832.7 877 960.4 709.4 960.4 512.1c0-247.5-200.6-447.9-447.9-447.9C265 64.1 64.6 264.5 64.6 512z"></path>
</svg>
          </a>
        
      
        
          <a href="https://twitter.com/guanquanhong" class="soft-size--primary soft-style--box" target="_blank" rel="noopener noreferrer">
            <svg class="icon icon-twitter" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg">
  <path d="M962.285714 233.142857q-38.285714 56-92.571429 95.428571 0.571429 8 0.571429 24 0 74.285714-21.714286 148.285714t-66 142-105.428571 120.285714-147.428571 83.428571-184.571429 31.142857q-154.857143 0-283.428571-82.857143 20 2.285714 44.571429 2.285714 128.571429 0 229.142857-78.857143-60-1.142857-107.428571-36.857143t-65.142857-91.142857q18.857143 2.857143 34.857143 2.857143 24.571429 0 48.571429-6.285714-64-13.142857-106-63.714286t-42-117.428571l0-2.285714q38.857143 21.714286 83.428571 23.428571-37.714286-25.142857-60-65.714286t-22.285714-88q0-50.285714 25.142857-93.142857 69.142857 85.142857 168.285714 136.285714t212.285714 56.857143q-4.571429-21.714286-4.571429-42.285714 0-76.571429 54-130.571429t130.571429-54q80 0 134.857143 58.285714 62.285714-12 117.142857-44.571429-21.142857 65.714286-81.142857 101.714286 53.142857-5.714286 106.285714-28.571429z"></path>
</svg>
          </a>
        
      
    </div>
     
    <p>&copy; 2024 <a href="/" target="_blank">QAQ</a></p>

    

    <p>Powered by <a href="https://hexo.io" target="_blank" rel="noopener noreferrer">Hexo</a> Theme - <a href="https://github.com/miiiku/flex-block" target="_blank" rel="noopener noreferrer author">flex-block</a></p>

    <p>
      <a href="javascript:;" id="theme-light">🌞 浅色</a>
      <a href="javascript:;" id="theme-dark">🌛 深色</a>
      <a href="javascript:;" id="theme-auto">🤖️ 自动</a>
    </p>
  </div>
</footer>
  </div>

  <div class="back-to-top-fixed soft-size--round soft-style--box">
    <svg class="icon icon-back-to-top" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg">
      <path d="M725.333333 426.666667c-12.8 0-21.333333-4.266667-29.866667-12.8l-213.333333-213.333333c-17.066667-17.066667-17.066667-42.666667 0-59.733333s42.666667-17.066667 59.733333 0l213.333333 213.333333c17.066667 17.066667 17.066667 42.666667 0 59.733333C746.666667 422.4 738.133333 426.666667 725.333333 426.666667z"></path>
      <path d="M298.666667 426.666667c-12.8 0-21.333333-4.266667-29.866667-12.8-17.066667-17.066667-17.066667-42.666667 0-59.733333l213.333333-213.333333c17.066667-17.066667 42.666667-17.066667 59.733333 0s17.066667 42.666667 0 59.733333l-213.333333 213.333333C320 422.4 311.466667 426.666667 298.666667 426.666667z"></path>
      <path d="M512 896c-25.6 0-42.666667-17.066667-42.666667-42.666667L469.333333 170.666667c0-25.6 17.066667-42.666667 42.666667-42.666667s42.666667 17.066667 42.666667 42.666667l0 682.666667C554.666667 878.933333 537.6 896 512 896z"></path>
    </svg>
  </div>

  
  <!-- aplayer -->


<!-- dplayer -->


<!-- copy button  -->
<script src="https://cdn.jsdelivr.net/npm/clipboard@2.0.11/dist/clipboard.min.js"></script>

<!-- https://clipboardjs.com/ -->


<script type="text/javascript">
	(function () {
		function getCodeType (elem) {
			const classs = Array.from(elem.classList.values());
			if (classs && classs.length > 1) {
				return classs[1];
			}
			return "plain";
		}

		window.addEventListener("DOMContentLoaded", () => {
			const copyBtnClass = "copy-btn";
			//  instantiate clipboardjs 
			const clipboard = new ClipboardJS('.' + copyBtnClass);

			clipboard.on('success', function (e) {
				console.info('Action:', e.action);
				console.info('Text:', e.text);
				console.info('Trigger:', e.trigger);
				if (e.trigger) {
					e.trigger.classList.add("copied");
					setTimeout(() => {
						e.trigger.classList.remove("copied");
					}, 3000);
				}
				e.clearSelection();
			});

			clipboard.on('error', function (e) {
				console.error('Action:', e.action);
				console.error('Trigger:', e.trigger);
			});

			document.querySelectorAll('figure.highlight').forEach((elem) => {
				const codeContent = elem.querySelector("td.code");
				const copyButton = document.createElement('button');
				copyButton.setAttribute("class", copyBtnClass);
				copyButton.setAttribute("title", "Copy Code");
				copyButton.setAttribute("data-clipboard-text", codeContent.innerText);
				elem.insertBefore(copyButton, elem.children[0]);
			});
		})
	})();
</script>








  


  


  




<script src="/blog/js/script.js"></script>


  
  <!-- 尾部用户自定义相关内容 -->
</body>
</html>
